

#ifndef MoveStateIf_H__
#define MoveStateIf_H__


class IEntity;


/*
*
*	GEMState Interface
*
*	Entity Moving States
*
*/
class TCOM_API  IMoveState
{
public:
	virtual ~IMoveState(){;}

	//
	//
	void Init(IEntity* pEntity, IMoveController* pMove)
	{
	}

	// 
	//	Fire when enter a new state
	//
	virtual void enter() = 0;

	// 
	//	Fire just before leaving a state
	//
	virtual void leave() = 0;

	// 
	//	update in current state
	//
	virtual bool update(int nElapse) = 0;

	// 
	//	onEvent callback in current state
	//
	virtual void onEvent(IEvt& evt) = 0;

};




#endif // Move_H
